home *** CD-ROM | disk | FTP | other *** search
/ SGI Developer Toolbox 6.1 / SGI Developer Toolbox 6.1 - Disc 4.iso / src / demos / GL / flight / aifflib.h < prev    next >
C/C++ Source or Header  |  1994-08-01  |  3KB  |  79 lines

  1. /*
  2.  * Copyright 1992, 1993, 1994, Silicon Graphics, Inc.
  3.  * All Rights Reserved.
  4.  *
  5.  * This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics, Inc.;
  6.  * the contents of this file may not be disclosed to third parties, copied or
  7.  * duplicated in any form, in whole or in part, without the prior written
  8.  * permission of Silicon Graphics, Inc.
  9.  *
  10.  * RESTRICTED RIGHTS LEGEND:
  11.  * Use, duplication or disclosure by the Government is subject to restrictions
  12.  * as set forth in subdivision (c)(1)(ii) of the Rights in Technical Data
  13.  * and Computer Software clause at DFARS 252.227-7013, and/or in similar or
  14.  * successor clauses in the FAR, DOD or NASA FAR Supplement. Unpublished -
  15.  * rights reserved under the Copyright Laws of the United States.
  16.  */
  17. #ifndef __AIFFLIB_H
  18. #define    __AIFFLIB_H
  19.  
  20. #define    AIFF_NOMEM        -1    /* too many files open */
  21. #define    AIFF_OPENFAILURE    -2    /* can't open a file (check errno) */
  22. #define    AIFF_BADFD        -3    /* bad file descriptor */
  23. #define    AIFF_BADDATASIZE    -4    /* AIFF file has invalid data size */
  24. #define    AIFF_BADHEADER        -5    /* AIFF file has a bad header */
  25. #define    AIFF_NOTAIFF        -6    /* doesn't appear to be AIFF file */
  26. #define    AIFF_NOFORMCHUNK    -7    /* can't find the FORM header */
  27. #define    AIFF_BADCHUNK        -8    /* file is corrupt */
  28. #define    AIFF_WRITEFAILURE    -9    /* can't write to file */
  29. #define    AIFF_PARAMSFIXED    -10    /* can't change audio parameters */
  30. #define    AIFF_BADCHANNELS    -11    /* unsupported number of channels */
  31. #define    AIFF_BADWIDTH        -12    /* unsupported sample width (bits) */
  32. #define    AIFF_BADRATE        -13    /* unsupported sample rate */
  33.  
  34. #ifdef __cplusplus
  35. extern "C" {
  36. #endif
  37.  
  38. typedef    int    AIFFfile;
  39.  
  40. /* all the functions returning int return -1 on error and set AIFFerrno */
  41.  
  42. AIFFfile    AIFFopen(const char* filename, const char* dir);
  43. int    AIFFclose(AIFFfile fd);
  44.  
  45. /* accepts and returns number of samples not bytes */
  46. int    AIFFwrite(AIFFfile fd, const void* buf, unsigned nsamp);
  47. int    AIFFread(AIFFfile fd, void* buf, unsigned nsamp);
  48. int    AIFFgetlength(AIFFfile fd);
  49.  
  50. int    AIFFgetchannels(AIFFfile fd);    /* returns 1 or 2 */
  51. int    AIFFgetwidth(AIFFfile fd);    /* returns 8, 16, or 24 */
  52. int    AIFFgetrate(AIFFfile fd);    /* returns 48000, 44100, 32000, etc. */
  53. int    AIFFsetchannels(AIFFfile fd, int channels);    /* takes 1 or 2 */
  54. int    AIFFsetwidth(AIFFfile fd, int width);    /* takes 8, 16, or 24 */
  55. int    AIFFsetrate(AIFFfile fd, int rate);    /* takes 48000, 44100, etc. */
  56.  
  57. /*
  58.  * functions to convert AL defines (AL_RATE_48000, AL_STEREO, etc.) to
  59.  * real numbers (48000, 2, etc.)
  60.  */
  61. int    CONVERTchannelstoAL(int nchannels);
  62. int    CONVERTwidthtoAL(int width);
  63. int    CONVERTratetoAL(int rate);
  64. int    CONVERTALtochannels(int ALnchannels);
  65. int    CONVERTALtowidth(int ALwidth);
  66. int    CONVERTALtorate(int ALrate);
  67.  
  68. extern int    AIFFerrno;
  69.  
  70. void    AIFFerror(const char *s);
  71. char*    AIFFstrerror(int err);
  72.  
  73. #ifdef __cplusplus
  74. }
  75. #endif
  76.  
  77. #endif
  78.  
  79.